Skip to content

Fix windows-arm64 timeout floor to use numeric comparison#129814

Merged
MichalStrehovsky merged 1 commit into
mainfrom
copilot/research-ci-timeout-settings
Jun 25, 2026
Merged

Fix windows-arm64 timeout floor to use numeric comparison#129814
MichalStrehovsky merged 1 commit into
mainfrom
copilot/research-ci-timeout-settings

Conversation

Copilot AI commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

The windows-arm64 timeout floor in global-build-job.yml compared a string-typed parameter against 75 with gt(parameters.timeoutInMinutes, 75). Because timeoutInMinutes is declared as a string (default: ''), ADO coerces the passed value (e.g. 360) to a string and gt() keys conversion off the left operand's type — producing a lexicographic compare ('360' < '75' → false). Explicit timeouts ≥ 100 silently collapsed to the 75-min floor, causing runtime-coreclr libraries-jitstressregs windows-arm64 to time out at 75 min (build 1474264).

Changes

  • eng/pipelines/common/global-build-job.yml: Swapped the comparison so the integer literal is the left operand: gt(parameters.timeoutInMinutes, 75)lt(75, parameters.timeoutInMinutes). ADO now converts the right operand to a number, yielding a true numeric comparison.
-      ${{ elseif gt(parameters.timeoutInMinutes, 75) }}:
+      ${{ elseif lt(75, parameters.timeoutInMinutes) }}:

Explicit values > 75 (e.g. 360) are now honored; values ≤ 75 still fall through to the 75-min floor. No other code or the parameter declaration was touched.

Co-authored-by: JulieLeeMSFT <63486087+JulieLeeMSFT@users.noreply.github.com>
Copilot AI self-assigned this Jun 24, 2026
Copilot AI review requested due to automatic review settings June 24, 2026 18:12
Copilot AI removed the request for review from Copilot June 24, 2026 18:12
@JulieLeeMSFT

Copy link
Copy Markdown
Member

Fixes fallout of large timeout (> 75min) from #129553. It did string to int comparison. With this fix, legs that had higher timeout values set will run longer than 75min (e.g., libraries jitstressregs).
@hoyosjs, PTAL.

@JulieLeeMSFT JulieLeeMSFT marked this pull request as ready for review June 24, 2026 18:20
@JulieLeeMSFT JulieLeeMSFT requested review from Copilot and hoyosjs June 24, 2026 18:20
@JulieLeeMSFT JulieLeeMSFT added the area-Infrastructure-coreclr Only use for closed issues label Jun 24, 2026
@JulieLeeMSFT JulieLeeMSFT added this to the 11.0.0 milestone Jun 24, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adjusts the windows_arm64 job timeout “floor” logic in the shared global build job template so that explicit timeouts above 75 minutes are correctly honored, avoiding unintended string/lexicographic comparisons in Azure DevOps template expressions.

Changes:

  • Updates the conditional expression for windows_arm64 timeout selection to compare using a numeric-typed left operand (lt(75, parameters.timeoutInMinutes)), ensuring numeric comparison behavior.
  • Keeps existing behavior for unset ('') and ≤75 minute values, still applying the 75-minute floor.

@JulieLeeMSFT JulieLeeMSFT marked this pull request as draft June 24, 2026 18:25
@JulieLeeMSFT

Copy link
Copy Markdown
Member

Converting to draft to wait for #129791 if it reduces the windows arm64 build time.

@JulieLeeMSFT JulieLeeMSFT added the NO-MERGE The PR is not ready for merge yet (see discussion for detailed reasons) label Jun 24, 2026

@MichalStrehovsky MichalStrehovsky left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We need to unblock arm64 testing and I doubt anyone is going to review my PR anytime soon.

@MichalStrehovsky MichalStrehovsky removed the NO-MERGE The PR is not ready for merge yet (see discussion for detailed reasons) label Jun 25, 2026
@MichalStrehovsky MichalStrehovsky marked this pull request as ready for review June 25, 2026 04:47
@MichalStrehovsky

Copy link
Copy Markdown
Member

/ba-g the builds reset because of the Draft -> Ready for review state change, but the previous builds looked good. Let's unblock outerloops

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area-Infrastructure-coreclr Only use for closed issues

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

6 participants